As computing technology has advanced, computers have become increasingly commonplace and used in a variety of different manners. For example, users run applications and access services via the Internet from their mobile phones, desktop computers, laptop computers, and so forth. Applications and services oftentimes desire to have the user authenticated, so that the application or service knows that the user is in fact the person he or she claims to be. Providing such authentication, however, remains a difficult problem for computing device developers.